home *** CD-ROM | disk | FTP | other *** search
Modula Definition | 1985-12-03 | 2.6 KB | 60 lines |
- DEFINITION MODULE OperationCodes;
- (* Initializes lookup table for Mnemonic OpCodes. Searches the table *)
- (* and returns the bit pattern along with address mode information. *)
-
- FROM Parser IMPORT
- TOKEN;
-
-
- EXPORT QUALIFIED
- ModeTypeA, ModeTypeB, ModeA, ModeB, Instructions;
-
-
- TYPE
- ModeTypeA = (RegMem3, (* 0 = Register, 1 = Memory *)
- Ry02, (* Register Rx -- Bits 0-2 *)
- Rx911, (* Register Ry -- Bits 9-11 *)
- Data911, (* Immediate Data -- Bits 9-11 *)
- CntR911, (* Count Register or Immediate Data *)
- Brnch, (* Relative Branch *)
- DecBr, (* Decrement and Branch *)
- Data03, (* Used for VECT only *)
- Data07, (* Branch & MOVEQ *)
- OpM68D, (* Data *)
- OpM68A, (* Address *)
- OpM68C, (* Compare *)
- OpM68X, (* XOR *)
- OpM68S, (* Sign Extension *)
- OpM68R, (* Register/Memory *)
- OpM37); (* Exchange Registers *)
-
- ModeTypeB = (Bit811, (* BIT operations - bits 8/11 as switch *)
- Size67, (* 00 = Byte, 01 = Word, 10 = Long *)
- Size6, (* 0 = Word, 1 = Long *)
- Size1213A, (* 01 = Byte, 11 = Word, 10 = Long *)
- Size1213, (* 11 = Word, 10 = Long *)
- Exten, (* OpCode extension required *)
- EA05a, (* Effective Address - ALL *)
- EA05b, (* Less 1 *)
- EA05c, (* Less 1, 11 *)
- EA05d, (* Less 9, 10, 11 *)
- EA05e, (* Less 1, 9, 10, 11 *)
- EA05f, (* Less 0, 1, 3, 4, 11 *)
- EA05x, (* Dual mode - OR/AND *)
- EA05y, (* Dual mode - ADD/SUB *)
- EA05z, (* Dual mode - MOVEM *)
- EA611); (* Used only by MOVE *)
-
- ModeA = SET OF ModeTypeA;
- ModeB = SET OF ModeTypeB;
-
-
-
- PROCEDURE Instructions (MnemonSym : TOKEN;
- OpLoc : CARDINAL; VAR Op : BITSET;
- VAR AddrModeA : ModeA; VAR AddrModeB : ModeB);
- (* Uses lookup table to find addressing mode & bit pattern of opcode. *)
-
- END OperationCodes.
-